Technical Field
The present invention relates to an information processing apparatus, information processing apparatus startup method, and a non-transitory recording medium storing an information processing apparatus startup control program.
Background Art
Multicore CPUs that include multiple CPU cores have been adopted in information processing apparatuses and have become widely used in information processing apparatuses embedded in various apparatuses (embedded systems). In those information processing apparatuses, it is desired to use the multicore CPU effectively and optimize various processes. Especially, from the viewpoint of usability, it is demanded that startup time of the information processing apparatus after turning the power on until becoming available to users be shortened.
Conventional start-up methods of an operating system that speed up the startup by executing divided kernel images sequentially using the multicore CPU are known. However, in the conventional startup method described above, only the startup of the operating system before booting a kernel is speeded up, and therefore the startup of the information processing apparatus could be delayed because the multicore CPU cannot be used effectively after booting the kernel.
On the other hand, conventionally, information processing apparatuses that speed up the boot time by executing multiple program modules in the startup process simultaneously using the multicore CPU after booting the kernel are known.
FIG. 15 is a diagram illustrating a startup process in the conventional information processing apparatuses and an example of a known startup process implemented by information processing apparatuses in which UNIX or Linux is installed.
First, for comparison, the startup process of the information processing apparatus that does not execute multiple program modules simultaneously is described below.
In the startup process A shown in FIG. 15, init (SysVinit in this case) program of UNIX is executed in the startup of the information processing apparatus. The init program performs the startup process of the information processing apparatus. The information processing apparatus is initialized by an init process based on the init program, and multiple program modules of the startup process are executed sequentially. Consequently, multiple program modules (i.e., Syslog, D-Bus, Avahi, and Bluetooth in this case) are executed sequentially.
In the startup process B shown in FIG. 15, after starting up Upstart as an init program, multiple program modules are executed. In this case, for example, if a program module related to Universal Serial Bus (USB) is executed before a USB device gets ready, a certain amount of resource is consumed due to load of the program module into memory and other program modules are prevented from executing. In addition, some program modules do not function properly if other program modules are not executed. To cope with this issue, here, startup of multiple program modules is controlled, and program modules are executed using events that occur at the information processing apparatus a trigger. As a result, it is possible to reduce resource conflict due to unnecessary program startup while some of program modules (i.e., Avahi and Bluetooth in this case) are executed simultaneously.
In a startup process C shown in FIG. 15, after systemd is executed in Linux, multiple program modules are executed. Here, systemd is an init program developed from Upstart, and systemd executes multiple program modules simultaneously and speeds up the startup time of the information processing apparatus. In this case, Syslog, D-Bus, Avahi, and Bluetooth are executed simultaneously.